<?php
/**
 * Description of ProyectoDAO
 *
 * @author Jose
 */

require_once(getcwd()."/Modelo/ConexionBD.php");
require_once(getcwd()."/include/utils.php");
class ProyectoDAO {
 static function obtenerBeneficiarios($idProyecto){
     $sql="select B.idBeneficiaro,
         B.nombres, B.apPaterno, B.apMaterno, ";
 }
 static function obtenerProyecto_porID($idProyecto) {
        $sql="select idProyecto,nombre,
            from proyecto where idProyecto=$idProyecto";
        return ConexionBD::ejecutarQuerySelectUnitario($sql);
    }
 static function obtenerProyectos($param) {
        $sql="SELECT p.idproyecto, p.nombre, p.estado, p.idVoluntarioEncargado, p.idPrograma,
            p.idMetodologia, DATE_FORMAT( p.fechaInicio,  '%d/%m/%Y' ) AS fechaInicio,
            DATE_FORMAT( p.fechaFin,  '%d/%m/%Y' ) AS fechaFin, m.nombre, v.nombre, v.apPaterno,
            v.apMaterno, pro.nombre
                FROM proyecto p
                LEFT  JOIN metodologia m ON m.idMetodologia = p.idMetodologia
                LEFT JOIN programa pro ON pro.idPrograma = p.idPrograma
                LEFT JOIN voluntario v ON v.idVoluntario = p.idVoluntarioEncargado
            ";
        if ($param['idBeneficiario']!="")
        {
            $sql.=" left join Proyecto_x_Beneficiario pb on pb.idProyecto=p.idProyecto ";
        }
        $sql.="    where true=true ";

        
        $param['fechaInicioDesde']=isset($_REQUEST['fechaInicioDesde'])?$_REQUEST['fechaInicioDesde']:"";
        $param['fechaInicioHasta']=isset($_REQUEST['fechaInicioHasta'])?$_REQUEST['fechaInicioHasta']:"";
        $param['fechaFinDesde']=isset($_REQUEST['fechaFinDesde'])?$_REQUEST['fechaFinDesde']:"";
        $param['fechaFinHasta']=isset($_REQUEST['fechaFinHasta'])?$_REQUEST['fechaFinHasta']:"";
        
        if ($param['nombre']!=""){
            $sql.=" and p.nombre like '%".$param['nombre']."%'";
        }
        if ($param['idPrograma']!=""){
            $sql.=" and p.idprograma=".$param['idPrograma'];
        }
        if ($param['estado']!=""){
            $sql.=" and p.estado='".$param['estado']."'";
        }
        if ($param['idVoluntarioEncargado']!=""){
            $sql.=" and p.idVoluntarioEncargado=".$param['idVoluntarioEncargado'];
        }
        if ($param['idBeneficiario']!="")
        {
            $sql.=" and pb.idProyecto=".$param['idBeneficiario'];
        }
        if ($param['fechaInicioDesde']!="" and $param['fechaInicioHasta']!="")
        {
            $sql.=" and p.fechaInicio between '". fechaFormatoBD($param['fechaInicioDesde'])."' and '".fechaFormatoBD($param['fechaInicioHasta'])."'";
        }
        else if ($param['fechaInicioDesde']!="")
            {
                $sql.=" and p.fechaInicio >  '". fechaFormatoBD($param['fechaInicioDesde'])."'";
            }
            else if ($param['fechaInicioHasta']!="")
            {
                $sql.=" and p.fechaInicio  < '". fechaFormatoBD($param['fechaInicioHasta'])."'";
            }
         if ($param['fechaFinDesde']!="" and $param['fechaFinHasta']!="")
        {
            $sql.=" and p.fechaFin between '". fechaFormatoBD($param['fechaFinDesde'])."' and '".fechaFormatoBD($param['fechaFinHasta'])."'";
        }
        else if ($param['fechaFinDesde']!="")
            {
                $sql.=" and p.fechaFin >  '". fechaFormatoBD($param['fechaFinDesde'])."'";
            }
            else if ($param['fechaFinHasta']!="")
            {
                $sql.=" and p.fechaFin  < '". fechaFormatoBD($param['fechaFinHasta'])."'";
            }
        echo $sql;
        return ConexionBD::ejecutarQuerySelect($sql);
    }
    function obtenerProgramasActivos(){
        $sql="select idPrograma, nombre from programa where estado!='terminado'";
        return ConexionBD::ejecutarQuerySelect($sql);
    }
    function obtenerProgramas(){
        $sql="select idPrograma, nombre from programa ";
        return ConexionBD::ejecutarQuerySelect($sql);
    }
    function obtenerGrupos($idPrograma){
        $sql="select g.idGrupo, g.nombre, g.edadMin, g.edadMax, g.idPrograma
            from grupo g
            where idPrograma=$idPrograma";
        return ConexionBD::ejecutarQuerySelect($sql);
    }
    function grabar($proyecto){
        $sql="insert into proyecto(nombre,estado,idprograma, idvoluntarioEncargado, idmetodlogia,
            fechaInicio,fechaFin)
            values('".$proyecto->nombre."','".$proyecto->estado."',".
                $proyecto->idprograma.",".$proyecto->idVoluntarioEncargado.",".
                $proyecto->idmetodologia.",'".fechaFormatoBD($proyecto->fechaInicio)."','".
                fechaFormatoBD($proyecto->fechaFin)."')";
        return ConexionBD::ejecutarQuerySimple($sql);
    }

    function grabarPrograma($programa){
        $sql="insert into evaluacion(nombre,zona,fechaInicio, fechaFin, estado, idVoluntario)
           values('".$programa->nombre."','".$programa->zona."','".
           fechaFormatoBD($proyecto->fechaInicio)."','".fechaFormatoBD($programa->fechaFin).
           "','".$programa->estado."',".$programa->idVoluntario.")";
        return ConexionBD::ejecutarQuerySimple($sql);
    }
    static function actualizar($proyecto) {
        $sql="update proyecto set nombre='".$proyecto->nombre."', estado='".
        $programa->estado."', idMetodologia=".$programa->idMetodologia.",
        fechaInicio='".fechaFormatoBD($proyecto->fechaInicio)."'  fechaFin='".fechaFormatoBD($proyecto->fechaFin)."',
        idVoluntarioEncargado=".$proyecto->idVoluntarioEncargado.
        " where idevaluacion=".$proyecto->idprograma;
        return ConexionBD::ejecutarQuerySimple($sql);
    }
    static function actualizarPrograma($programa) {
        $sql="update programa set nombre='".$programa->nombre."', estado='".
        $programa->estado."', zona='".$programa->zona."', idMetodologia=".$programa->idMetodologia.",
        fechaInicio='".fechaFormatoBD($proyecto->fechaInicio)."'  fechaFin='".fechaFormatoBD($proyecto->fechaFin)."'
        where idevaluacion=".$proyecto->idprograma;
        return ConexionBD::ejecutarQuerySimple($sql);
    }
    static function obtenerBeneficiariosInscritos($proyecto){
        $sql="select PB.idBeneficiario as Cod,
            concat(B.nombre,' ',B.apPaterno,' ',B.apMaterno) as NombreCompleto, 'Calificacion'
            from Proyecto_x_Beneficiario PB
            left join   Beneficiario B on B.idBeneficiario=PB.idBeneficiario
            where PB.idProyecto=".$proyecto['idProyecto'];
        return ConexionBD::ejecutarQuerySelect($sql);
    }
    static function grabarEvaluaciones($idProyecto,$tipoEval,$archivo,$idVoluntario){
        $query="insert into beneficiario_x_evaluacion
            (idBeneficiario, calificacion,idvoluntario,idTipoEvaluacion,idProyecto)
            values ";
        $cont=0;
        foreach ($arreglo as $fila) {
            $cont++;
            $query.="(".$arreglo[0].",'".$arreglo[2]."',".$idVoluntario.",".$tipoEval.",".$idProyecto.")";
            if($cont<sizeof($arreglo))
                $query.=",";
            
        }
        

    }
    static function obtenerBeneficiariosInscritosPorEval($proyecto,$tipoEvaluacion){
         $sql="select e.idBeneficiario as Cod,
            concat(B.nombre,' ',B.apPaterno,' ',B.apMaterno) as NombreCompleto, coalesce(calificacion,'')
            from Proyecto_x_Beneficiario PB 
            left join evaluacion e on PB.idBeneficiario=e.idBeneficiario and e.idProyecto=PB.idProyecto
                and e.idTipoEvaluacion=$tipoEvaluacion
            left join   Beneficiario B on B.idBeneficiario=PB.idBeneficiario
            where PB.idProyecto=".$proyecto['idProyecto'] ;
        return ConexionBD::ejecutarQuerySelect($sql);
    }
}
?>
